package com.ml.mall.entity.coupon;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@TableName(value = "sys_coupon")
public class SysCoupon implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 创建时间
     */
    @TableField(value = "create_at",fill = FieldFill.INSERT)
    private Date createAt;

    /**
     * 更新时间
     */
    @TableField(value = "update_at",fill = FieldFill.INSERT_UPDATE)
    private Date updateAt;

    /**
     * 是否删除
     */
    @ApiModelProperty(value = "是否删除")
    @TableField(value = "is_delete",fill = FieldFill.INSERT)
    @TableLogic(value = "0",delval = "1")
    private Integer isDelete;

    /**
     * @description    :目录名称
     * @author         :zxm
     * @date           :2021/5/24
    **/
    @TableField(value = "coupon_name")
    private String couponName;

    /**
     * 类别用于商城搜索
     */
    @TableField(value = "coupon_code")
    private String couponCode;

    /**
     * 0：全部；1：免邮；2:卖家 3：商品 ；01系统承担优惠；23卖家承担优惠
     */
    @TableField(value = "coupon_type")
    private Integer couponType;

    /**
     * 0:固定值 1：百分比
     */
    @TableField(value = "coupon_class")
    private Integer couponClass;

    /**
     * 费率
     */
    @TableField(value = "coupon_rate")
    private BigDecimal couponRate;

    /**
     * 金额
     */
    @TableField(value = "coupon_money")
    private BigDecimal couponMoney;

    /**
     * 数量
     */
    @TableField(value = "amount")
    private Integer amount;

    /**
     * 使用数量
     */
    @TableField(value = "use_amount")
    private Integer useAmount;

    /**
     * 最低限制
     */
    @TableField(value = "low_limit_money")
    private BigDecimal lowLimitMoney;

    /**
     * 最高限制
     */
    @TableField(value = "top_limit_money")
    private BigDecimal topLimitMoney;

    /**
     * 开始时间
     */
    @TableField(value = "time_begin")
    private Date timeBegin;

    /**
     * 结束时间
     */
    @TableField(value = "time_end")
    private Date timeEnd;

    /**
     * 优惠描述
     */
    @TableField(value = "description")
    private String description;

    /**
     * 状态：0有效；1无效
     */
    @TableField(value = "state")
    private Integer state;

    /**
     * 是否互斥：0否；1是；多个优惠券相加；只要是结果大于等于1不能同时使用；
     */
    @TableField(value = "mutual_type")
    private Integer mutualType;

    /**
     * 创建者
     */
    @TableField(value = "creater")
    private String creater;

    /**
     * 承担者：0：系统承担；1：商家承担
     */
    @TableField(value = "bearer")
    private Integer bearer;

    @TableField(value = "usage_limit_num")  //同一优惠券能使用的次数
    private Integer usageLimitNum;

    @TableField(exist = false)
    private Long supplierId;

    private static final long serialVersionUID = 1L;
}
